Storage medium having game program stored thereon, game apparatus and input device

ABSTRACT

Reference coordinates are set for controlling a game based on coordinate information which is outputted when a state that no coordinate information is outputted from a pointing device is shifted to a state that coordinate information is outputted, and designated coordinates are set based on the coordinate information and the game is controlled based on at least one of an input direction which is a direction from the reference coordinates to the designated coordinates and an input distance which is a distance between the reference coordinates and the designated coordinates.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2004-257370, filedMar. 9, 2004, is incorporated herein by reference.

TECHNICAL FIELD

The exemplary embodiments disclosed herein relate to a storage mediumhaving a game program stored thereon, a game apparatus and an inputdevice, and more particularly to a storage medium in which stored is agame program used for a computer game for which a pointing device suchas a touch panel is employed, a game apparatus and an input device.

BACKGROUND AND SUMMARY

Conventionally, various types of games for which a joystick is used as acontroller have been developed. The joystick is provided with a lever,and a player tilts the lever forward and backward, and rightward andleftward, thereby making inputs according to the directions. In general,a direction in which and a degree to which the joystick is tilted arehandled by a game apparatus as an input direction and an input quantity,respectively. In a case where the player tilts the joystick lever in acertain direction to a certain degree to hold the joystick lever at thatposition, the positional information is continuously outputted andhandled by the game apparatus as the input direction and the inputquantity. The joystick is also used for a typical personal computer aswell as used as a controller for a home game apparatus.

On the other hand, an input device which is operated by a player using atouch panel has been also developed, as disclosed in, for example,Japanese Laid-Open Patent Publication No. 11-53115 (Document 1) andJapanese Laid-Open Patent Publication No. 7-182092 (Document 2). Withthe input device disclosed in the Document 1, as shown in FIG. 1 andFIG. 3 of the Document 1, a player uses a touch panel to utilize, as adirection in which and a speed at which a cursor moves, a direction anda distance from a predetermined origin on the touch panel to a point atwhich the player is pointing. On the other hand, in the input devicedisclosed in the Document 2, as shown in FIG. 6 of the Document 2, agame screen is displayed on a display having a touch panel mountedthereon. According to a movement corresponding to a vector quantity of amovement of a finger with which a player touches the touch panel, anobject which is selectively touched is moved on the game screen.

Here, if an operation in which a joystick is emulated can be realizedfor a game apparatus having a touch panel, it is convenient. In thiscase, information which is eventually required is a vector value of twoaxes of X and Y corresponding to a joystick input value. The vectorvalue is represented as a vector value (sx, sy) in a stick coordinatesystem. A direction indicated by the vector value (sx, sy) is adirection in which the joystick is tilted and a length of the vectorvalue is a degree to which the joystick is tilted. Further, the lengthof the vector value corresponding to the joystick being tilted to themaximum is set as “1”. In this case, sx=−1 to +1 and sy=−1 to +1, andthe length of “0” indicates that the joystick is in a neutral (upright)position.

Further, the vector value (sx, sy) in the stick coordinate system can beobtained according to the following formula, using an origin (ox, oy) onthe touch panel and a point (tx, ty) at which the player is pressing thetouch panel, the origin and the point being represented in the touchpanel coordinate system.sx=(tx−ox)×ratiosy=(ty−oy)×ratiowhere the ratio is a conversion ratio used for defining a length in thetouch panel coordinate system, which corresponds to the length “1” inthe stick coordinate system. For example, when a length from an originis “10” in the touch panel coordinate system, the length is defined as“1” in the stick coordinate system. Consequently, the ratio is set as“ratio=1÷10=0.1”.

While the invention disclosed in the Document 1 utilizes, forinformation processing, a difference between an origin and a point atwhich a touch panel is being pressed, when the input method of theinvention disclosed in the Document 1 is applied as it is to theoperation in which a joystick is emulated, various problems arise.

In the case of an actual joystick, the player keeps the lever tilted ata desired angle in a desired direction, thereby continuously outputtingan input value according to the direction and the angle. That is, thejoystick continuously supplies a constant output when the lever is heldat a predetermined position. In a case where such operation is appliedto the invention disclosed in the Document 1, an angle and a distancebetween an center point (origin) being set at the center of the touchpanel and an input point at which the player presses the touch panel areused as an input value for the operation in which a joystick isemulated. Therefore, since the origin used for the operation in which ajoystick is emulated is fixedly set as the center point of the touchpanel, when the player touch-operates the touch panel, the player mustconstantly confirm the position of the origin being set on the touchpanel so as to perform a correct operation. In the case of an actualjoystick, since the player can perceive how the lever is being tiltedwith his finger or hand, the player does not have to visually confirmthe origin of the joystick. However, in a case where an operation inwhich a joystick is emulated using a touch panel is realized, since theplayer cannot perceive the origin with his finger, the player mustvisually confirm the position of the origin.

A method for relatively moving a cursor according to a movement trace ofa player's finger is also disclosed in the Document 1. Further, a methodfor moving an object which is selectively touched on a game screenaccording to a movement corresponding to a vector of a movement of afinger with which a player touches a touch panel is disclosed in theDocument 2. In these methods, however, since the input is not made untilthe players' finger moves, the input for which a joystick is emulatedcannot be realized. This is because an actual joystick continuouslysupplies a constant input when a lever is held at a predeterminedposition as described above. More specifically, in a case where a gameobject is moved according to a movement corresponding to a vector of amovement of a finger which touches the touch panel in the methoddisclosed in the Document 2, the finger must be continuously moved inorder to move the game object.

Therefore, a feature of certain exemplary embodiments is to provide astorage medium having stored thereon a game program for preventing, inan operation in which a joystick is emulated using a pointing device, aplayer from being confused during the operation, a game apparatus, andan input device.

Certain exemplary embodiments have the following aspects to attain thefeature mentioned above. The reference numerals, step Nos. (a step isabbreviated as S and only the step Nos. are indicated), and the like inthe parentheses indicate the correspondence with the exemplaryembodiments described herein in order to aid in understanding thesecertain exemplary embodiments and are not intended to be limiting in anyway.

A first aspect of certain exemplary embodiments is directed to a storagemedium having stored thereon a game program executed by a computer (21)in a game apparatus (1) which is operated using a pointing device (13).The pointing device outputs coordinate information (tx, ty) being basedon a given coordinate system (touch panel coordinate system) and beingdesignated according to an operation of a player. The game programstored on the storage medium causes the computer operable to execute areference coordinate setting step (S43), a designated coordinate settingstep (S44), and a game control step (S48, S52, and S53). In thereference coordinate setting step, reference coordinates (ox, oy) forcontrolling the game in the coordinate system is set based on coordinateinformation which is outputted when a state that no coordinateinformation is outputted from the pointing device is shifted to a statethat coordinate information is outputted. In the designated coordinatesetting step, designated coordinates (ux, uy) in the coordinate systemis set based on the coordinate information which is outputted from thepointing device. In the game control step, the game is controlled basedon at least one (sx, sy) of an input direction which is a direction fromthe reference coordinates to the designated coordinates and an inputdistance which is a distance between the reference coordinates and thedesignated coordinates. The pointing device is an input device fordesignating an input position or coordinates on a screen, such as atouch panel, a mouse, a track pad, and a track ball. The coordinatesystem used for each input device is a touch panel coordinate system ora screen coordinate system.

In a second aspect based on the first aspect, in the referencecoordinate setting step, when the player carries out a continuousoperation using the pointing device, the reference coordinates are setin the coordinate system based on the earliest coordinate informationwhich is designated by the player.

In a third aspect based on the first aspect, the game program stored onthe storage medium further causes the computer operable to execute anoutput detection step (S40, S42, and S49 to S51). In the outputdetection step, it is detected that a state that the player is operatingthe pointing device is shifted to a non-operation state (S50) accordingto whether coordinate information is outputted from the pointing deviceor not (S40). In the reference coordinate setting step, the referencecoordinates are reset in the coordinate system based on coordinateinformation which is outputted when a state that no coordinateinformation is outputted from the pointing device is shifted again to astate that the coordinate information is outputted (Yes in both S40 andS42) after the non-operation state is detected in the output detectionstep (a touch flag is set as OFF in S51).

In a fourth aspect based on the third aspect, in the output detectionstep, when the state that the coordinate information is outputted fromthe pointing device is shifted to the state that no coordinateinformation is outputted, counting a time period during which thenon-output state is continued is started (S49), and when the time periodbeing counted exceeds a predetermined time period (Yes in S50), it isdetermined that a state that the player is operating the pointing deviceis shifted to a non-operation state (S51).

In a fifth aspect based on the first aspect, in the game control step,when an output of coordinate information from the pointing device isstopped, the game is continuously controlled based on at least one ofthe input direction and the input distance between the designatedcoordinates and the reference coordinates which are set before theoutput is stopped.

In a sixth aspect based on the first aspect, the game program stored onthe storage medium further causes the computer operable to execute apositional relationship storage step. In the positional relationshipstorage step, when the output of coordinate information from thepointing device is stopped, stored is a relative positional relationshipbetween the designated coordinates and the reference coordinates, whichare set before the output is stopped. In the designated coordinatesetting step, a position indicated by the earliest coordinateinformation which is outputted from the pointing device after the outputis stopped is set as the designated coordinates in the coordinatesystem. In the reference coordinate setting step, the referencecoordinates are reset in the coordinate system based on the relativepositional relationship having been stored in the positionalrelationship storage step using as a reference the position indicated bythe earliest coordinate information.

In a seventh aspect based on the first aspect, the game apparatuscomprises a display (12) which is covered by the pointing device. Thegame program stored on the storage medium further causes the computeroperable to execute a reference coordinate position display step. In thereference coordinate position display step, an image indicating theposition of the reference coordinates is displayed on the display.

An eighth aspect of certain exemplary embodiments is directed to a gameapparatus which is operated using a pointing device. The pointing deviceoutputs coordinate information being based on a given coordinate systemand being designated according to an operation of a player. The gameapparatus comprises a reference coordinate setting means, a designatedcoordinate setting means and a game control means. The referencecoordinate setting means sets reference coordinates for controlling thegame in the coordinate system, based on the coordinate information whichis outputted when a state that no coordinate information is outputtedfrom the pointing device is shifted to a state that coordinateinformation is outputted. The designated coordinate setting means setsdesignated coordinates in the coordinate system based on the coordinateinformation which is outputted from the pointing device. The gamecontrol means controls the game based on at least one of an inputdirection which is a direction from the reference coordinates to thedesignated coordinates and an input distance which is a distance betweenthe reference coordinates and the designated coordinates.

A ninth aspect of certain exemplary embodiments is directed to an inputdevice for inputting information to the game apparatus according to anoperation of a player. The input device comprises a coordinateinformation output means (13), a reference coordinate setting means, anda designated coordinate setting means. The coordinate information outputmeans outputs coordinate information being based on a given coordinatesystem and being designated according to the operation of the player.The reference coordinate setting means sets reference coordinates forcontrolling the game in the coordinate system, based on coordinateinformation which is outputted when a state that no coordinateinformation is outputted from the coordinate information output means isshifted to a state that the coordinate information is outputted. Thedesignated coordinate setting means sets designated coordinates in thecoordinate system based on the coordinate information which is outputtedfrom the coordinate information output means. The game apparatuscontrols the game based on at least one of an input direction which is adirection from the reference coordinates to the designated coordinatesand an input distance which is a distance between the referencecoordinates and the designated coordinates.

A tenth aspect of certain exemplary embodiments is directed to a storagemedium having stored thereon a program executed by a computer in aninformation processing apparatus (1) which is operated using a pointingdevice. The pointing device outputs coordinate information being basedon a given coordinate system and being designated according to anoperation of a user. The program stored on the storage medium causes thecomputer operable to execute a reference coordinate setting step, adesignated coordinate setting step, and an operation processing step. Inthe reference coordinate setting step, reference coordinates forperforming operation processing in the coordinate system is set based onthe coordinate information which is outputted when a state that nocoordinate information is outputted from the pointing device is shiftedto a state that the coordinate information is outputted. In thedesignated coordinate setting step, designated coordinates in thecoordinate system is set based on the coordinate information which isoutputted from the pointing device. In the operation processing step,operation processing is performed based on at least one of an inputdirection which is a direction from the reference coordinates to thedesignated coordinates and an input distance which is a distance betweenthe reference coordinates and the designated coordinates.

According to the first aspect, when an operation in which a joystick isemulated is carried out with using reference coordinates and designatedcoordinates which are set by a pointing device, the referencecoordinates which are fixedly set through a continuous operation is setbased on coordinate information which is outputted when a state that nocoordinate information is outputted from the pointing device is shiftedto a state that the coordinate information is outputted. Therefore, theplayer operates the pointing device by himself, and thereby the playercan controllably feel and know the position of the reference coordinateshaving been set by himself. That is, the player can recognize thereference coordinates as if he controls a joystick, and thereby it isunnecessary to visually confirm the position of the referencecoordinates. Further, reference coordinates which are always fixed withrespect to the pointing device is not set, and thereby the operation canbe started at any position in the coordinate system for the pointingdevice.

According to the second aspect, the reference coordinates are set basedon the earliest coordinate information which is designated during acontinuous operation carried out by the player using the pointingdevice, and thereby the player can easily and controllably set thereference coordinates during the operation and naturally know theposition of the reference coordinates.

According to the third aspect, the player can easily reset the referencecoordinates.

According to the fourth aspect, even when the operation on the pointingdevice is interrupted against the player's intention, the player cancontinue the game feeling as if no interruption has occurred.

According to the fifth aspect, the player does not have to continue thesame operation for a long time, and thereby the same operation can beeasily continued.

According to the sixth aspect, since a relative positional relationshipbetween the reference coordinates and the designated coordinates ismaintained, even when the operation is interrupted against the player'sintention, the player can continue the game feeling as if nointerruption has occurred.

According to the seventh aspect, an image indicating the position of thereference coordinates is displayed on a display, and thereby thereference position can be further displayed to the player in real time.

Moreover, the game apparatus, the input device and the storage mediumhaving a program stored thereon according to the certain exemplaryembodiments described herein enables the same effect as that obtained bythe aforementioned game program to be achieved.

These and other features, aspects and advantages of certain exemplaryembodiments will become more apparent from the following detaileddescription when taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an outline view illustrating a game apparatus 1 executing agame program according to an exemplary embodiment;

FIG. 2 is a block diagram illustrating an internal structure of the gameapparatus 1 shown in FIG. 1;

FIG. 3 is a flow chart illustrating an operation performed by the gameapparatus 1 by executing the game program according to an exemplaryembodiment;

FIG. 4 shows a subroutine which is a detailed operation ofinitialization at the start of touch in step 43 shown in FIG. 3;

FIG. 5 shows a subroutine which is a detailed operation of hand jigglingcorrection for the touch point in step 44 shown in FIG. 3;

FIG. 6 shows a subroutine which is a detailed operation of an originbeing drawn in step 47 shown in FIG. 3;

FIGS. 7A and 7B are diagrams illustrating an example of the handjiggling correction, which is carried out according to the operationbased on the flow chart shown in FIG. 3;

FIG. 8 is a diagram illustrating an example of a designated point, anorigin, and a limited range which are processed according to theoperation based on the flowchart shown in FIG. 3;

FIGS. 9A and 9B are diagrams illustrating an example of an operation ofan origin being drawn, which is carried out according to the operationbased on the flow chart shown in FIG. 3;

FIGS. 10A to 10D are diagrams illustrating an example where the vectorvalue from the origin to the designated point is changed by repeatingthe origin drawing on the basis of the flow chart shown in FIG. 3;

FIG. 11 is a diagram illustrating an example for explaining a positionto which the origin is drawn according to parameters m and n; and

FIG. 12 is a diagram illustrating another example for explaining aposition to which the origin is drawn according to the parameters m andn.

DETAILED DESCRIPTION

A game apparatus which executes a game program according to an exemplaryembodiment will be described with reference to the drawings. FIG. 1 isan outline view illustrating a game apparatus 1 which executes a gameprogram according to certain exemplary embodiments. Here, a portablegame apparatus is shown as an example of the game apparatus 1.

In FIG. 1, the game apparatus 1 according to this exemplary embodimentis accommodated in a housing 18 so that two liquid crystal displaydevices (hereinafter, referred to as “LCDs”) 11 and 12 are placed inpredetermined positions. Specifically, in a case where the first LCD 11and the second LCD 12 are to be positioned one on top of the other, thehousing 18 is composed of a lower housing 18 a and an upper housing 18b, the upper housing 18 b being pivotably supported by a portion of theupper side of the lower housing 18 a. The upper housing 18 b has aplanar contour which is slightly larger than that of the first LCD 11.The upper housing 18 b has an opening in one principal face thereof,through which a display screen of the first LCD 11 is exposed. The lowerhousing 18 a has a more elongated planar contour than that of the upperhousing 18 b (i.e., so as to have a longer lateral dimension). Anopening for exposing the display screen of the second LCD 12 is formedin a portion of the lower housing 18 a which lies substantially in thecenter of the lower housing 18 a along the lateral direction. A soundhole for the loudspeaker 15 is formed in either (right or left) wings ofthe lower housing 18 a between which the second LCD 12 is interposed. Anoperation switch section 14 is provided on the right and left wings ofthe lower housing 18 a between which the second LCD 12 is interposed.

The operation switch section 14 includes: an operation switch (“A”button) 14 a and an operation switch (“B” button) 14 b, which areprovided on a principal face of the right wing of the lower housing 18 a(lying to the right of the second LCD 12); a direction switch (crosskey) 14 c, a start switch 14 d, and a select switch 14 e, which areprovided on a principal face of the left wing of the lower housing 18 a(lying to the left of the second LCD 12); and side switches 14 f and 14g. The operation switches 14 a and 14 b are used for giving instructionssuch as: “pass” “shoot”, etc., in the case of a sports game such as asoccer game; “jump”, “punch”, “use a weapon”, etc., in the case of anaction game; or “get an item”, “select a weapon”, “select a command”,etc., in the case of a role playing game (RPG) or a simulation RPG. Thedirection switch 14 c is used by a player for providing instructionsconcerning directions on the game screen, e.g., instructions of movingdirections of (i.e., a direction in which to move) a player object (or aplayer character) that can be controlled by using the operation switchsection 14, or instructions of a moving direction for a cursor, forexample. The side switch (“L” button) 14 f and the side switch (“R”button) 14 g are provided at the left and right ends of an upper face(upper side face) of the lower housing 18 a. As necessary, moreoperation switches may be added.

Further, a touch panel 13 (an area marked by dotted lines in FIG. 1) ismounted on the upper principal face of the second LCD 12 as an exampleof the input device according to certain exemplary embodiments. Thetouch panel 13 may be of any one of, for example, a resistive film type,an optical type (infrared type), or a capacitive coupling type. Thetouch panel 13 is a pointing device which, when a stylus 16 (or afinger) is pressed against or moved or dragged on the upper principalface of the touch panel 13, detects the coordinate position of thestylus 16 and outputs coordinate data.

As necessary, a hole (an area marked by double-dot lines in FIG. 1) foraccommodating the stylus 16 with which to manipulate the touch panel 13is provided near a side face of the upper housing 18 b. The hole canhold the stylus 16. In a portion of a side face of the lower housing 18a is provided a cartridge receptacle (an area marked by dash-dot linesin FIG. 1), into which a game cartridge 17 (hereinafter simply referredto as “the cartridge 17”) internalizing a memory having a game programstored therein (e.g., a ROM) is detachably inserted. The cartridge 17 isan information storage medium for storing a game program, e.g., anon-volatile semiconductor memory such as a ROM or a flash memory. Aconnector (see FIG. 2) lies inside the cartridge receptacle forproviding electrical connection with the cartridge 17. Furthermore, thelower housing 18 a (or alternatively the upper housing 18 b)accommodates an electronic circuit board on which various electroniccomponents such as a CPU are mounted. Examples of the informationstorage medium for storing a game program are not limited to theaforementioned non-volatile semiconductor memory, but may also be aCD-ROM, a DVD, or any other optical disk type storage medium.

Next, referring to FIG. 2, the internal structure of the game apparatus1 will be described. FIG. 2 is a block diagram illustrating an internalstructure of the game apparatus 1 of FIG. 1.

In FIG. 2, a CPU core 21 is mounted on the electronic circuit boardaccommodated in the housing 18. Via a predetermined bus, the CPU core 21is connected to a connector 28 for enabling connection with thecartridge 17, an input/output interface (I/F) circuit 27, a firstgraphics processing unit (first GPU) 24, a second graphics processingunit (second GPU) 26, and a working RAM (WRAM) 22.

The cartridge 17 is detachably connected to the connector 28. Asdescribed above, the cartridge 17 is a storage medium for storing a gameprogram. Specifically, the cartridge 17 includes a ROM 171 for storing agame program and a RAM 172 for storing backup data in a rewritablemanner. A game program which is stored in the ROM 171 of the cartridge17 is loaded to a WRAM 22, and the game program having been loaded tothe WRAM 22 is executed by the CPU core 21. Temporary data which isobtained by the CPU core 21 executing the game program and data fromwhich to generate images are stored in the WRAM 22.

Thus, the ROM 171 has stored thereon a game program which comprisesinstructions and data which are of a format executable by a computer inthe game apparatus 1, in particular by the CPU core 21. The game programis loaded to the WRAM 22 as appropriate, and executed. Although thepresent exemplary embodiment illustrates an example where the gameprogram and the like are stored on the cartridge 17, the game programand the like may be supplied via any other medium or via acommunications circuit.

The touch panel 13, the operation switch section 14, and the loudspeaker15 are connected to the I/F circuit 27. The loudspeaker 15 is placedinside the aforementioned sound hole.

The first GPU 24 is connected to a first video-RAM (hereinafter “VRAM”)23. The second GPU 26 is connected to a second video-RAM (hereinafter“VRAM”) 25. In accordance with an instruction from the CPU core 21, thefirst GPU 24 generates a first game image on the basis of the data usedfor generation of image which is stored in the WRAM 22, and writesimages into the first VRAM 23. In accordance with an instruction fromthe CPU core 21, the second GPU 26 generates a second game image on thebasis of the data used for generation of image which is stored in theWRAM 22, and writes images into the second VRAM 25.

The first GPU 24 is connected to the first LCD 11, and the second GPU 26is connected to the second LCD 12. The first GPU 24 outputs to the firstLCD 11 the first game image which has been written into the first VRAM23 in accordance with an instruction from the CPU core 21, and the firstLCD 11 displays the first game image having been output from the firstGPU 24. The second GPU 26 outputs to the second LCD 12 the second gameimage which has been written into the second VRAM 25 in accordance withan instruction from the CPU core 21, and the second LCD 12 displays thesecond game image having been output from the second GPU 26.

The I/F circuit 27 is a circuit which governs exchanges of data betweenthe CPU core 21 and the external input/output devices such as the touchpanel 13, the operation switch section 14, and the loudspeaker 15. Thetouch panel 13 (including a device driver for the touch panel) has atouch panel coordinate system corresponding to the coordinate system ofthe second VRAM 25, and outputs data of position coordinatescorresponding to a position which is input (designated) by means of thestylus 16 or the like. For example, the display screen of the second LCD12 has a resolution of 256 dots×192 dots, and the touch panel 13 alsohas a detection accuracy of 256 dots×192 dots so as to correspond to thedisplay screen. The detection accuracy of the touch panel 13 may belower or higher than the resolution of the display screen of the secondLCD 12.

Next, processing which is executed by the game apparatus 1 according tothe game program on the basis of information inputted from the touchpanel 13 according to certain exemplary embodiments will be describedwith reference to FIGS. 3 to 11. FIG. 3 is a flow chart illustrating anoperation which is carried out by the game apparatus 1 by executing thegame program. FIG. 4 shows a subroutine illustrating an operation ofinitialization at the start of touch in step 43 of FIG. 3 in detail.FIG. 5 shows a subroutine illustrating an operation of hand jigglingcorrection for a touch point in step 44 of FIG. 3 in detail. FIG. 6shows a subroutine illustrating an operation of an origin being drawn instep 47 of FIG. 3 in detail. FIGS. 7A to 11 are diagrams illustratingexamples of touch-operations which are processed through the operationbased on the flow chart shown in FIG. 3. The program for executing theseprocessing is contained in the game program stored in the ROM 171. Whenthe game apparatus 1 is powered on, the program is loaded to the WRAM 22from the ROM 171, and executed by the CPU core 21.

Initially, when the power source (not shown) of the game apparatus 1 isturned on, the CPU core 21 executes a boot program (not shown), andthereby the game program stored in the cartridge 17 is loaded to theWRAM 22. The game program having been loaded is executed by the CPU core21, thereby to execute steps (abbreviated as “S” in FIGS. 3 to 6) shownin FIG. 3. The game program is executed, and thereby game images and thelike in accordance with the game program are written into the first LCD11 and the second LCD 12. The detailed description is not given of thecontents of the game. Here, the processing based on the informationinputted from the touch panel 13 will be described in detail.

In FIG. 3, the CPU core 21 determines whether a player is touching thetouch panel 13 or not in step 40. The touch panel 13 has a touch panelcoordinate system as described above, and outputs data of positioncoordinates corresponding to a position which is inputted (designated)by means of the stylus 16 or a finger of the player. That is, in step40, the CPU core 21 detects whether the data of the position coordinatesoutputted by the touch panel 13 (including a device driver controllingthe touch panel 13) is present or not. When the player is touching thetouch panel 13, the CPU core 21 advances the processing to the next step41. On the other hand, when the player is not touching the touch panel13, the CPU core 21 advances the processing to the next step 49.

In step 41, the CPU core 21 clears a non-touch counter CT to “0”. Thenon-touch counter CT is a counter with which the CPU core 21 determineswhether or not the player intentionally puts the touch panel 13 in anon-touch state. As is apparent from the below description, when nocoordinate information is outputted from touch panel 13, the CPU core 21starts counting by means of the non-touch counter CT.

Next, the CPU core 21 determines whether or not the playertouch-operates the touch panel 13 as a start of touch (that is,determines whether a non-touch state changes to a touch state or not,and more specifically, determines whether or not a state that nocoordinate information is outputted from the touch panel is shifted to astate that coordinate information is outputted.) The CPU core 21 candetermine whether the touch-operation is a start of touch or not basedon whether the touch flag is being set as ON or OFF, which will bedescribed later. When the touch-operation is a start of touch (that is,when the touch flag is being set as OFF), the CPU core 21 advances theprocessing to the next step 43. On the other hand, when thetouch-operation is not a start of touch (that is, when thetouch-operation is continued; the touch flag is being set as ON), theCPU core 21 advances the processing to the next step 44.

In step 43, the CPU core 21 carries out initialization at the start oftouch. Hereinafter, the initialization at the start of touch will bedescribed with reference to a subroutine shown in FIG. 4.

In FIG. 4, the CPU core 21 sets the touch flag as ON in step 55. The CPUcore 21 sets, to an origin (reference coordinates) on the touch panel13, a touch point at which the player is currently touch-operating thetouch panel 13 (hereinafter, simply referred to as a touch point) andstores the touch point in step 56. Specifically, when the touch point is(tx, ty) and the origin is (ox, oy) in the touch panel coordinatesystem, the CPU core 21 sets, as the origin coordinates,ox=txoy=ty.That is, when a state that no coordinate information is outputted fromthe touch panel 13 is shifted to a state that coordinate information isoutputted, the CPU core 21 sets origin coordinates (referencecoordinates) on the touch panel 13 based on the earliest coordinateinformation of a touch point, which is outputted from the touch panel13.

Next, the CPU core 21 sets the touch point as a designated point on thetouch panel 13 (hereinafter, simply referred to as a designated point)in step 57, and ends the processing according to the subroutine.Specifically, when the touch point is (tx, ty) and the designated pointis (ux, uy) in the touch panel coordinate system, the CPU core 21 sets,as the designated point coordinates,ux=txuy=ty.

Returning to FIG. 3, in step 44, the CPU core 21 makes hand jigglingcorrection for a touch point. Hereinafter, the hand jiggling correctionfor a touch point will be described with reference to the subroutineshown in FIG. 5. For example, when a player touch-operates the touchpanel 13 with his finger or the like which has a wide area, the touchpanel 13 cannot determine the touch point as one point and the touchpoint coordinates sometimes jiggle. Therefore, in the hand jigglingcorrection for the touch point, the designated point coordinates for usein the processing are defined differently from the touch pointcoordinates to produce an tolerance for the touch point coordinates.That is, while the touch point coordinates are jiggling with respect tothe designated point coordinates within a predetermined range, thedesignated point coordinates remains unchanged. For example, a circularframe (tolerance range) having the designated point coordinates at thecenter thereof is set, thereby setting the center of the circular frameas the designated point coordinates. While the touch point coordinatesare present within the circular frame, the circular frame is not moved.On the other hand, when the touch point coordinates deviate beyond thecircular frame, the circular frame is moved in accordance with themovement of the touch point, thereby resulting in the designated pointcoordinates being moved. That is, the designated point coordinates aremoved in accordance with the movement of the circular frame, themovement being caused when the touch point contacts the outer edge ofthe circular frame. The radius of the circular frame corresponds to thetolerance range for the hand jiggling on the touch panel 13. Thetolerance range is not necessarily required to be a circular area, andthe designated point coordinates are not necessarily required to be thecenter of the area.

In FIG. 5, the CPU core 21 obtains a distance L2 between the touch pointand the designated point which is currently being set based on thedifference therebetween in step 61. Specifically, when the touch pointis (tx, ty) and the designated point is (ux, uy) in the touch panelcoordinate system, the CPU core 21 obtains the differences vx and vy asfollows.vx=ux−txvy=uy−tyThe CPU core 21 obtains the distance L2 as follows.L2=√{square root over (vx ² +vy ²)}Thereby, the distance L2 between the designated point and the touchpoint are obtained on the basis of the touch panel coordinate system.

Next, the CPU core 21 determines whether or not the touch point deviatesbeyond the tolerance range which is set around the designated point instep 62. As shown in FIG. 7A, a predetermined area having the designatedpoint (ux, uy) at the center thereof is set as the tolerance range. Forexample, the tolerance range is set as a circular area of apredetermined radius having the designated point (ux, uy) at the centerthereof. The CPU core 21 compares the distance L2 obtained in the step61 with the radius of the tolerance range, and when the distance L2 islarger, the CPU core 21 determines that the touch point deviates beyondthe tolerance range. When the touch point deviates beyond the tolerancerange (the state shown in FIG. 7A), the CPU core 21 advances theprocessing to the next step 63. On the other hand, when the touch pointis within the tolerance range, the CPU core 21 ends the processingaccording to the subroutine.

In step 63, the CPU core 21 stores the coordinates of the currentdesignated point so as to obtain the movement speed of the designatedpoint, which will be described later. Specifically, as shown in FIG. 7B,when the designated point coordinates to be stored are (uxa, uya) in thetouch panel coordinate system, the CPU core 21 sets asuxa=uxuya=uy.

Next, the CPU core 21 moves the designated point such that the touchpoint is positioned on the outer edge of the tolerance range in step 64.For example, as shown in FIG. 7B, the CPU core 21 moves the designatedpoint along a straight line connecting the designated point with thetouch point such that the distance between the designated point and thetouch point is the distance r, thereby to set a new designated point.Specifically, when the new designated point is (ux, uy) in the touchpanel coordinate system, the CPU core 21 sets asux=tx+vx*r/L2uy=ty+vy*r/L2where r is a radius of the tolerance range.

Next, the CPU core 21 calculates the moving distance of the designatedpoint in step 65, and ends the processing according to the subroutine.Specifically, the CPU core 21 calculates the moving distance of thedesignated point using the following formula.uvx=ux−uxauvy=uy−uya

The motion vector (uvx, uvy) is used for adjusting a direction in whichan origin is drawn, which will be described below in detail.

Returning to FIG. 3, the CPU core 21 obtains a distance L1 between theorigin being currently set and the designated point based on thedifference therebetween in step 45. Specifically, when the origin is(ox, oy) and the designated point is (ux, uy) in the touch panelcoordinate system, the CPU core 21 obtains the differences vx and vy asfollows:vx=ox−uxvy=oy−uyThe CPU core 21 obtains the distance L1 as follows.L1=√{square root over (vx ² +vy ²)}Thereby, the distance L1 between the origin and the designated point areobtained on the basis of the touch panel coordinate system.

Next, the CPU core 21 determines whether or not the designated pointdeviates beyond the limited range being set around the origin in step46. As shown in FIG. 8, a predetermined area having the origin (ox, oy)at the center thereof is set as the limited range. For example, thelimited range is set as a circular area of a predetermined radius havingthe origin (ox, oy) at the center thereof. The CPU core 21 compares thedistance L1 obtained in the step 45 with a radius R of the limitedrange, and when the distance L1 is larger, the CPU core 21 determinesthat the designated point deviates beyond the limited range. When thedesignated point deviates beyond the limited range, the CPU core 21advances the processing to the next step 47. On the other hand, when thedesignated point is within the limited range (the state shown in FIG.8), the CPU core 21 advances the processing to the next step 48.

Prior to step 47 being described, the processing of step 48 performed inthe case of the designated point being within the limited range setaround the origin (No in step 46) will be described. In step 48, the CPUcore 21 obtains a stick value based on a vector value from the origin tothe designated point.

According to the present exemplary embodiment, an operation in which thetouch panel 13 is used to emulate a joystick is realized and therequired information is a vector value of 2 axes of X and Ycorresponding to an input value of a joystick (hereinafter, referred toas a stick value). The vector value is represented as a stick value (sx,sy) in the stick coordinate system. The direction indicated by the stickvalue (sx, sy) indicates a direction in which the joystick is tilted andthe length of the stick value indicates a degree to which the joystickis tilted. Further, the length of the stick value corresponding to thejoystick being tilted to the maximum is set as “1”. In this case, sx=−1to +1 and sy=−1 to +1. The length of “0” indicates that the joystick isin a neutral (upright) position.

In step 48, the stick value (sx, sy) in the stick coordinate system canbe obtained according to the following formula, using the origin (ox,oy) and the designated point (ux, uy) on the touch panel 13, the originand the designated point being represented in the touch panel coordinatesystem.sx=(ux−ox)×ratiosy=(uy−oy)×ratiowhere the ratio is a conversion ratio used for defining a length in thetouch panel coordinate system, which corresponds to the length “1” inthe stick coordinate system. The vector value from the origin to thedesignated point is represented as a vector (ux−ox, uy−oy).

According to the present exemplary embodiment, a limited rangecorresponding to a frame for mechanically controlling a degree to whicha joystick lever is tilted is provided around the origin, and anoperation of the outer edge of the limited range being touch-operated ishandled as an operation of the joystick being tilted to the maximum. Atouch-operation performed outside the limited range is similarly handledas an operation of the outer edge of the limited range beingtouch-operated. That is, the length between the origin and the outeredge of the limited range provided around the origin is defined as thelength “1” in the stick coordinate system. Accordingly, ratio=1/R isset. Here, R is a radius of the limited range in the touch panelcoordinate system.

As shown in FIG. 8, the player touch-operates the touch panel 13 at aposition vertically in front of the origin (ox, oy) in the limitedrange, thereby setting a designated point (ux1, uy1). In this case, thevector value from the origin to the designated point is a vector v1(ux1−ox, uy1−oy) which is oriented vertically in front of the origin.The stick value obtained on the basis of the vector v1 has the directionto vertically in front of the origin and the length smaller than orequal to “1”.

Then, the player touch-operates the touch panel 13 at a position to theright of the designated point (ux1, uy1) in the limited range, therebysetting a designated point (ux2, uy2). In this case, the vector valuefrom the origin to the designated point is a vector v2 (ux2−ox, uy2−oy)which is oriented to the right forward direction. The stick valueobtained on the basis of the vector v2 has the right forward directionand the length smaller than or equal to “1”.

Returning to FIG. 3, when the designated point deviates beyond thelimited range provided around the origin (Yes in step 46), the CPU core21 performs an operation of the origin being drawn in step 47.Hereinafter, an operation of the origin being drawn will be describedwith reference to the subroutine shown in FIG. 6.

In FIG. 6, the CPU core 21 sets a direction in which the origin is drawnin step 71. For example, the CPU core 21 sets a direction in which theorigin is drawn to a drawing direction (px, py) in the touch panelcoordinate system. The CPU core 21 obtains the drawing direction (px,py) as follows.px=ox−(ux+uvx*m)py=oy−(uy+uvy*m)where m is a parameter greater than or equal to 0, for adjusting adirection in which the origin is drawn, and the greater the value is,the closer is the direction in which the origin is drawn to the movingdirection of the designated point, that is, the closer is the origin tothe backward position of the designated point (assuming that the movingdirection of the designated point is forward). That is, in the case ofm=0, the origin is drawn so as not to change the direction of the vectorconnecting the origin with the designated point. The origin is drawnsuch that the greater m is, the closer is the direction of the vectororiented from the origin to the designated point to the direction of themotion vector of the designated point. According to the adjustment ofthe value of m, the vector direction of the stick value is determined byfocusing on the positional relationship between the designated point andthe origin (when m is small), or the vector direction of the stick valueis determined by focusing on the moving direction of the designatedpoint (when m is large). While the expression of “drawing direction” isused, it should be noted that the “drawing direction” is calculated as areverse direction of the direction in which the origin is actuallydrawn. The origin drawing direction obtained using the parameter m willbe described below in detail.

For example, as shown in FIG. 9A, the player touch-operates the touchpanel 13 at a position vertically in front of the origin (ox, oy) in thelimited range, thereby setting a designated point (ux1, uy1). In thiscase, since the designated point (ux1, uy1) is within the limited range,the operation of the origin being drawn is not executed. Then, theplayer touch-operates the touch panel 13 at a position which is to theright of the designated point (ux1, uy1) outside the limited range,thereby setting a designated point (ux3, uy3). In the step 71, in thecase of m=0, the direction in which the origin (ox, oy) is connectedwith the designated point (ux3, uy3) is set as a direction (px, py) inwhich the origin is drawn.

Next, the CPU core 21 calculates origin destination target coordinatesin step 72. Specifically, the CPU core 21 initially calculates a lengthL3 based on the drawing direction (px, py) which is set in step 71 asfollows.L3=√{square root over (px ² +py ²)}

The CPU core 21 calculates the origin destination target coordinates(ox2, oy2) based on the touch panel coordinate system as follows.ox2=ux+px*R/L3oy2=uy+py*R/L3

Next, in step 73, the CPU core 21 moves the origin, updates origincoordinates, stores the updated origin coordinates, and ends theprocessing according to the subroutine. While the origin may be moved tothe destination target coordinates which are determined as describedabove, the origin can be moved so as to gradually approach thedestination target coordinates. Specifically, the CPU core 21 calculatesthe moved origin coordinates (ox, oy) as follows.ox=ox+(ox2−ox)*noy=oy+(oy2−oy)*nwhere n is a parameter indicating a rate at which the origin is moved soas to approach the destination target coordinates. The setting value ofthe parameter n can be adjusted so as to control a rate (parameter n) atwhich the pre-moved origin is added to a difference between thepre-moved origin and the destination target coordinates (ox2, oy2)calculated in step 72.

For example, FIG. 9B shows an example where the origin (ox, oy) is drawnto the designated point (ux3, uy3) in the case of the parameters m and nbeing set as m=0 and n=1, respectively. As shown in FIG. 9B, in a casewhere the designated point (ux3, uy3) is set outside the limited range(an area marked by the dotted lines in FIG. 9B), the origin (ox, oy) isdrawn to the designated point (ux3, uy3) and the limited range is alsodrawn to the designated point (ux3, uy3). In the case of m=0, thedirection in which the origin (ox, oy) is drawn is a direction in whichthe pre-moved origin moves to the designated point (ux3, uy3). In thecase of n=1, the origin (ox, oy) is moved and thereby the designatedpoint (ux3, uy3) is positioned at the outer edge of the limited rangeset around the origin, and the distance L1 between the origin havingbeen moved and the designated point=the radius R of the limited range.As described above, when the designated point is outside the limitedrange, in the origin drawing operation, the origin is changed so as toapproach the designated point.

Next, the processing of step 48 performed after the origin is drawn willbe described. As described above, the CPU core 21 obtains a stick valuebased on a vector value from the origin to the designated point, and instep 48 the vector value is calculated using the origin having beendrawn. Hereinafter, an example where the vector value is changedaccording to origins having been drawn will be described with referenceto FIGS. 10A to 10D. FIGS. 10A to 10D are diagrams illustrating anexample where the origin is repeatedly drawn, thereby changing thevector value from the origin to the designated point, and the parametersm and n are set as m=0 and n=1, respectively, for giving a concretedescription.

In FIG. 10A, the player touch-operates the touch panel 13 at a positionvertically in front of the origin O1 in the limited range A1, therebysetting a designated point U1. In this case, the vector value from theorigin O1 to the designated point U1 is a vector V1 oriented verticallyin front of the origin. The stick value which is obtained on the basisof the vector V1 also has a direction to vertically in front of theorigin and has the length smaller than or equal to “1”.

Then, the designated point is moved in the rightward direction. In FIG.10B, the player touch-operates the touch panel 13 at the outer edge ofthe limited range A1 which is to the right of the designated point U1,thereby setting a designated point U2. In this case, the vector valuefrom the origin O1 to the designated point U2 is a vector V2 indicatingthe right forward direction which forms an angle of θ2 with thehorizontal direction. The stick value which is obtained on the basis ofthe vector V2 similarly has the right forward direction and the lengthof “1”.

Further, the designated point is moved in the rightward direction. InFIG. 10C, the player touch-operates the touch panel 13 at a positionwhich is to the right of the designated points U1 and U2 and which isoutside the limited range A1 (an area marked by dotted lines in FIG.10C), thereby setting a designated point U3. In the case of m=0, theorigin (an outline round mark shown in FIG. 10C) is drawn in thedirection of the designated point U3, and thereby the origin O2 is setso as to position the designated point U3 at the outer edge of thelimited range A2. In this case, the vector value from the origin O2 tothe designated point U3 is a vector V3 indicating the right forwarddirection which forms an angle of θ3 (θ3<θ2) with the horizontaldirection. The stick value which is obtained on the basis of the vectorV3 similarly has the right forward direction and the length of “1”.

Moreover, in FIG. 10D, the player touch-operates the touch panel 13 at aposition which is to the right of the designated points U1, U2 and U3and which is outside the limited range A2 (an area marked by dottedlines in FIG. 10D), thereby setting a designated point U4. In the caseof m=0, the origin (outline round mark shown in FIG. 10D) is drawn inthe direction of the designated point U4, and thereby the origin O3 isset so as to position the designated point U4 at the outer edge of thelimited range A3. In this case, the vector value from the origin O3 tothe designated point U4 is a vector V4 indicating the right forwarddirection which forms an angle of θ4 (θ4<θ3) with the horizontaldirection. The stick value which is obtained on the basis of the vectorV4 similarly has the right forward direction and the length of “1”.

As described above, the setting value of the parameter n is adjusted soas to control a rate at which the origin is moved so as to approach thedestination target coordinates (that is, a rate at which a lengthindicated by a stick value is changed so as to approach a predetermineddistance R when the length indicated by the stick value is larger thanthe predetermined distance R). Therefore, the distance between theorigin and the designated point may be sometimes larger than R dependingon a value of the parameter n. In this case, as to the stick value (sx,sy) obtained in the step 48, the absolute values of sx and sy aregreater than 1, resulting in the length of the stick value being set asa value greater than 1. However, as described above, the length of thestick value indicates a degree to which a joystick is tilted and thelength of the stick value corresponding to the joystick being tilted tothe maximum is set as “1”. Therefore, when the length of the stick valueis greater than 1, the length of the stick value is set as “1”.

As described above, in the origin drawing operation, when the designatedpoint is continuously moved in a give direction (a direction in whichthe player moves the touch point; the right horizontal direction inFIGS. 10A to 10D), the direction indicated by the stick value (that is,the direction in which a joystick is tilted) gradually approaches themoving direction of the designated point (the right horizontaldirection). Therefore, the player continuously moves the designatedcoordinates in a given direction, thereby determining a direction inwhich a stick is inputted without concern for the position of theorigin.

Returning to FIG. 3, when the CPU core 21 determines that the player isnot touching the touch panel 13 in the step 40, the CPU core 21increments the non-touch counter CT by one in step 49. Next, the CPUcore 21 determines whether or not the count value of the non-touchcounter CT is greater than a predetermined value C in step 50. When thecount value of the non-touch counter CT is greater than thepredetermined value C, the CPU core 21 advances the processing to thenext step 51. On the other hand, when the count value of the non-touchcounter CT is smaller than or equal to the predetermined value C, theCPU core 21 advances the processing to the next step 53.

In step 51, the CPU core 21 sets the touch flag as OFF. The CPU core 21sets the stick value as neutral in step 52, and ends the processingaccording to the flow chart. When the stick value is set as neutral, itindicates that a joystick is in a neutral (upright) position and sx=0and sy=0.

On the other hand, in step 53, the CPU core 21 does not update the mostrecent stick value which has been obtained in the previous processingand continuously uses the same, and ends the processing according to theflow chart.

As is apparent from the processing of the steps 49 to 52, the CPU core21 increments the count value of the non-touch counter CT in a casewhere the touch-operation performed on the touch panel 13 by the playeris interrupted. In a case where the count value is greater than thepredetermined value C, the CPU core 21 sets the touch flag as OFF anddetermines that the player stops the touch-operation. That is, when thecount value of the non-touch counter CT is greater than thepredetermined value C, the CPU core 21 determines that a state that theplayer is touch-operating the touch panel 13 is shifted to a non-touchoperation state (that is, a state that the player intentionally stopsthe touch operation). Accordingly, even when the touch operation on thetouch panel 13 is interrupted against the player's intention (forexample, even when the player carelessly moves his finger off the touchpanel), the player can continue the game feeling as if no interruptionhas occurred.

The stick value which is obtained in step 48, the stick value which isset in step 52, and the stick value which is continuously used in step53 are used for game processing just like for a prior art game for whicha joystick is used. For example, in a case where the player continues totouch-operate the same position on the touch panel 13 as a touch point(designated point), the processing according to the aforementioned flowchart is repeated in the processing cycle, thereby repeatedly obtainingthe same stick value. That is, in the game processing performed by thegame apparatus 1, the same stick value is used to repeat the gameprocessing, and thereby the game processing similar to the processingaccording to the operation of a constant input being continuouslysupplied when a joystick lever is held at a predetermined position canbe realized.

Also when the origin is fixed as in the prior art, a direction indicatedby a stick value approaches the right horizontal direction in which thetouch-operation is carried out. However, the angle θ4 and the like aresmaller when the origin is fixed. It is clear that the directionindicated by the stick value further approaches the direction in whichthe touch-operation is carried out when the origin is drawn. Further,the designated point is always set within the limited range, and thedistance between the designated point and the origin is always within apredetermined distance. Therefore, even when the player moves thedesignated point (touch point) to a position which is extremely far awayfrom the origin and carries out an operation for tilting a joystick tothe maximum and returning the joystick in the reverse direction, thedistance to the origin of the touch panel is within the predetermineddistance, thereby improving a response to the operation. Further, theorigin is always set within a given range with respect to the touchpoint on the touch panel 13, and thereby the player can feel and knowthe position of the origin being set on the touch panel 13, and theplayer can control the touch panel 13 without visually checking thetouch panel 13 feeling as if the player controls a joystick.

As described above, the setting value of the parameter m can be adjustedso as to control a rate at which the destination target coordinates aremoved so as to approach the backward position of the designated point(assuming that the moving direction of the designated point is forward)(that is, a rate at which a direction indicated by a stick value ismoved so as to approach the moving direction of the designated point).Further, the setting value of the parameter n can be adjusted so as tocontrol a rate at which the origin is moved so as to approach thedestination target coordinates (that is, a rate at which a lengthindicated by a stick value is changed so as to approach a predetermineddistance R when the length indicated by the stick value is larger thanthe predetermined distance R). Hereinafter, a relationship between theparameters m and n, and a position to which the origin is drawn will bedescribed with reference to FIG. 11. FIG. 11 is a diagram for explaininga position of the origin which is drawn according to the parameters mand n.

In FIG. 11, the player touch-operates the touch panel 13 within alimited range A5 set around an origin O5, thereby setting a designatedpoint U5. Then, the designated point is moved to the right, and theplayer touch-operates the touch panel 13 outside the limited range A5 ona straight line s1 in the rightward direction from the designated pointU5, thereby setting a designated point U6. The origin is drawn accordingto the origin O5, the designated points U5 and U6 to position an originO6 and set a limited range A6 based on the origin O6. FIG. 11 shows theorigin O6 and the limited range A6 in the case of the parameter m=0 andthe parameter n=1.

As described above, a direction in which the origin is drawn is adjustedaccording to the parameter m, and m≧0. The greater the setting value ofthe parameter m is, the closer the origin is drawn to the backwardposition of the designated point which moves from U5 to U6 along thestraight line s1. In the case of m=0, a direction in which the origin O5is connected with the designated point U6 (a straight line s2) is set asa direction in which the origin is drawn. Here, in order to draw theorigin as close to the straight line s1 as possible, the calculation maybe performed assuming that the designated point U6 is further movedalong the direction of the straight line s1. Therefore, as described inthe step 71, when a drawing direction (px, py) is obtained on the basisof the difference between the origin O5 and the designated point U6, avalue which is obtained by multiplying a motion vector (uvx, uvy) of thedesignated point by a predetermined rate (parameter m) is added to thedesignated point coordinates so as to obtain a value which is obtainedwhen the designated point U6 is further moved. Accordingly, the originis drawn into a range which is interposed between the straight lines s1and s2 according to the setting value of the parameter m, that is, thedestination target coordinates are set in the range which is interposedbetween the straight lines s1 and s2. Further, as is apparent from theabove-described formula, the destination target coordinates are set as aposition which is a predetermined distance (R) apart from the designatedpoint coordinates, thereby resulting in the destination targetcoordinates being determined as any point on an arc ar1 shown in FIG.11. In the case of m=0, the destination target coordinates are set so asto be as close to an intersection of the straight line s2 and the arcar1 as possible. In the case of m being infinitely great, thedestination target coordinates are set on an intersection of thestraight line s1 and the arc ar1. When m is greater than a predeterminedvalue, the drawing direction may be set so as to match the drawingdirection (px, py) with (uvx, uvy). Thereby, when m is greater than thepredetermined value, the destination target coordinates can be set on anintersection of the straight line s2 and the arc ar1.

On the other hand, as described above, a rate at which the origin isdrawn to the destination target coordinates can be adjusted according tothe parameter n, and 0<n-<1. In the case of n=1, the origin is moved tothe destination target coordinates. In the case of 0<n<1, the origin ismoved to any point on a line segment by which the origin is connectedwith the destination target coordinates (exclusive of both ends). Thepoint to which the origin is moved on the line segment depends on thevalue n. The smaller n is, the closer a selected point is to the currentorigin. The greater n is, the closer a selected point is to thedestination target coordinates.

Accordingly, the setting values of parameters m and n are adjusted,thereby drawing (moving) the origin to a position within an area α shownin FIG. 11. The area α is an area which is surrounded by the arc ar1which is obtained by cutting, with the straight lines s1 and s2, acircumference of a circle having a radius R and having the designatedpoint U6 at the center thereof, and the straight lines each connectingone end of the arc ar1 with the origin O5 (not including the origin O5).

Further, when the drawing direction (px, py) is obtained, and then themoved origin coordinates (ox, oy) are obtained fromox=ux+(px/L3)*n′oy=uy+(py/L3)*n′(Rn′<L4 (the length between O5 and U6)),the origin can be moved to a position within an area β shown in FIG. 12.The area β is a range which is interposed between the straight lines s1and s2, which form an acute angle, as well as a range which isinterposed between the arc ar1 of a circle having a radius R and havingthe designated point U6 at the center thereof, and the arc ar2 of acircle having a radius of the length between the designated point U6 andthe origin O5 and having the designated point U6 at the center thereof(exclusive of points on the arc ar2).

As described above, a position into which the origin is drawn can beadjusted according to the setting values of the parameters m and n (orn′), and a position into which the origin is drawn can be adjusted as anoptimal value according to the response or operability for each game.

Conversely, a case where the origin is moved to other than the area βwill be described with reference to FIG. 12. In a case where the originis moved to between the arc ar1 and the designated coordinates U6 (forexample, a point O7 shown in FIG. 12), while the player is moving thepressing point in the direction in which the length of the stick inputvalue is increased, the length of the input value is reduced, which doesnot match the player's controllability. Further, in a case where theorigin is moved to a position in front of the straight line s1 on theFIG. 12 (for example, a point O8 shown in FIG. 12), while the playertouches a point which is in the diagonally right forward direction fromthe origin, and changes the touch position to the right, the stick inputvalue has a right backward direction, which does not match the player'scontrollability. Moreover, in a case where the origin is moved to aposition in the backward direction from the straight line s2 on FIG. 12(for example, a point O9 shown in FIG. 12), while the player moves thetouch position to the right, the rightward direction component of thestick input value is reduced, which does not match the player'scontrollability. In addition, in a case where the origin is moved beyondthe arc art in the direction away from the designated point coordinatesU6, the distance between the origin and the designated point coordinatesbecomes longer. As described above, the player's controllability issubstantially different between a case where the origin is moved intothe area β and a case where the origin is moved to other than the areaβ.

As described above, according to certain exemplary embodiments, anorigin to be set on the touch panel is set as a position at which theplayer initially touch-operates the touch panel so as to achieve anoperation in which a joystick is emulated. Therefore, the playerinitially touches the touch panel by himself, and thereby the player cancontrollably feel and know the position of the origin having been set byhimself. That is, the player can perceive the position of the originwith his finger, and thereby the player does not have to visuallyconfirm the position of the origin. Further, no origin which is fixedlyset on the touch panel is set, and thereby the player can start theoperation at any position in the touch panel coordinate system.Furthermore, in a case where the player releases his finger for a shorttime against his intention, the origin can be prevented from beingreset, and in a case where the player intentionally releases his finger(in a case where his fingers are released for more than a predeterminedtime period), the origin can be reset.

Further, although in this exemplary embodiment the origin is drawnbefore the stick value is obtained, the origin may be drawn after thestick vale is obtained, and when the stick value is obtained next time,the origin having been drawn may be utilized. However, in general, it ispreferable that the origin is drawn before the stick value is obtained.

An image of at least one of the origin and the limited range set aroundthe origin, which are described in the aforementioned exemplaryembodiment, may be displayed on the second LCD 12. According to certainexemplary embodiments, while the player can feel and know the positionof the origin without visually checking the touch panel 13, when theorigin or the limited range is displayed on the second LCD 12 covered bythe touch panel 13, the position of the origin or the limited range ofthe touch panel 13 can be further displayed to the player in real time.

Further, in this exemplary embodiment, a touch point is arbitrarilypositioned in a tolerance range having a designated point at the centerthereof, and when the touch point deviates beyond the tolerance range,the tolerance range is moved according to the movement of the touchpoint, and consequently the designated point is moved, thereby makinghand jiggling correction for the touch point. However, when the effectof the hand jiggling correction is not required, the hand jigglingcorrection is not necessarily required to be made. In this case, a touchpoint is handled as a designated point as it is, and no tolerance rangeis set and the processing of the step 44 is not performed. In this way,even when a touch point is handled as a designated point as it is, theeffect of certain exemplary embodiments can be similarly achieved.

Moreover, in the flow chart shown in FIG. 3, when the player stopstouch-operating the touch panel 13 (No. in step 40), in a case where thecount value of the non-touch counter CT is greater than a predeterminedvalue C (Yes in step 50), a stick value is set as neutral. However, astick value having been set before stopping the touch-operation may becontinuously handled as a game parameter until the next touch-operationis carried out. In a case where the stick value is continuously handledas a game parameter until the next touch operation is carried out, theplayer does not have to continue the same touch-operation for a longtime, and thereby the same operation can be easily continued.

Moreover, in the flow chart shown in FIG. 3, when the player stopstouch-operating the touch panel 13 and then carries out atouch-operation again, an origin is newly set. However, when the nexttouch-operation is carried out, a relative positional relationshipbetween a designated point and an origin may be continuously used. Forexample, the relative positional relationship between the origin and thedesignated point, which are used in step 48 before stopping thetouch-operation, is stored, and when the touch-operation is restarted,the touch point may be set as the designated point. The relativepositional relationship having been stored is used to set an origin onthe basis of the designated point. In general, when the playertouch-operates an area other than the touch panel 13 during thetouch-operation on the touch panel 13, the player touch-operates adifferent position on the touch panel 13 again and attempts to continuethe same operation. Also when the touch-operation is carried out againas described above, since the relative positional relationship betweenthe origin and the designated point is maintained, the player can enjoythe game without the operation being interrupted. Further, the origincan be also set outside the touch panel 13, and thereby a wide range ofgame operations can be provided.

Further, the origin according to this exemplary embodiment does not haveto be a touch panel origin. That is, the touch panel origin is fixed andanother reference point may be used and changed as a reference for stickinput.

While in this exemplary embodiment a touch panel is used as an inputdevice for carrying out an operation in which a joystick is emulated,other pointing devices can be used. Here, the pointing device is aninput device which designates an input position or coordinates on ascreen. For example, when a mouse, a track pad, a track ball or the likeis used as an input device and information concerning a screencoordinate system, which is obtained on the basis of an output valuewhich is outputted by the input device, is used, the certain exemplaryembodiments can be realized in a similar manner. In a case where apointing device such as a mouse is used, a touch state and a non-touchstate correspond to an ON and an OFF of a click button, respectively,and the game apparatus or the like may calculate coordinates on thebasis of an output value which is outputted from the mouse or the like.

In addition, in this exemplary embodiment, the touch panel 13 isintegrated into the game apparatus 1. Needless to say, however, alsowhen the game apparatus and the touch panel are separately provided, thecertain exemplary embodiments can be realized. Further, while in thisexemplary embodiment two display devices are provided, the number ofdisplay devices provided can be only one. That is, in this exemplaryembodiment, it is also possible to provide only the touch panel 13without the second LCD 12 being provided. In addition, in this exemplaryembodiment, the second LCD 12 is not provided and the touch panel 13 maybe provided on the upper principal face of the first LCD 11.

Moreover, while in this exemplary embodiment the touch panel 13 isintegrated into the game apparatus 1, the touch panel is used as one ofinput devices for an information processing apparatus such as a typicalpersonal computer. In this case, a program executed by the computer inthe information processing apparatus is not limited to a game programwhich is typically used for a game, and the program is a general-purposeprogram in which the stick value obtained in the above-described manneris used for processing in the information processing apparatus.

Further, in this exemplary embodiment, when designated point coordinatesdeviate beyond the limited range, an origin is drawn. However, theorigin may be drawn under another condition. For example, when an anglebetween the origin and the designated point coordinates is differentfrom the angle obtained at the previous input, or when an angle betweenthe origin and the designated point coordinates is greater than apredetermined angle, the origin may be drawn.

While certain exemplary embodiments have been described in detail, theforegoing description is in all aspects illustrative and notrestrictive. It is understood that numerous other modifications andvariations can be devised without departing from the scope of thesecertain exemplary embodiments.

What is claimed is:
 1. An information processing apparatus comprising: atouchscreen display; a memory; and processing circuitry in communicationwith the touchscreen display and the memory, the processing circuitrybeing configured to generate images for a video game for display on thetouchscreen display and, while the images for the video game aredisplayed on the touchscreen display, to at least: (A) set referencecoordinates in accordance with touch point coordinates of auser-selected initial touch point on the touchscreen display, and storethe reference coordinates in the memory, and (B) during a continuoususer touch operation from a touch-on at the initial touch point on thetouchscreen display to a touch-off at another touch point on thetouchscreen display (i) set respective designated coordinates inaccordance with touch point coordinates of a current touch point on thetouchscreen display; (ii) determine at least one of a distance betweenthe reference coordinates stored in the memory and the respectivedesignated coordinates and a direction from the reference coordinatesstored in the memory to the respective designated coordinates; (iii)generate an input for the video game based on the determining; and (iv)repeat (i) through (iii), wherein the processing circuitry is configuredto display, on the touchscreen display, indicia based on the referencecoordinates.
 2. The information processing apparatus according to claim1, wherein the determining determines at least the direction from thereference coordinates stored in the memory to the respective designatedcoordinates, and the input for the video game is generated based on atleast the determined direction.
 3. The information processing apparatusaccording to claim 1, wherein the determining determines at least thedistance between the reference coordinates stored in the memory and therespective designated coordinates, and the input for the video game isgenerated based on at least the determined distance.
 4. The informationprocessing apparatus according to claim 1, wherein the determiningdetermines both the distance between the reference coordinates stored inthe memory and the respective designated coordinates and the directionfrom the reference coordinates stored in the memory to the respectivedesignated coordinates, and the input for the video game is generatedbased on both the determined distance and the determined direction. 5.An information processing apparatus comprising: a touchscreen display; amemory; and processing circuitry in communication with the touchscreendisplay and the memory, the processing circuitry being configured togenerate images for a video game for display on the touchscreen displayand, while the images for the video game are displayed on thetouchscreen display, to at least: (A) set reference coordinates inaccordance with touch point coordinates of a user-selected initial touchpoint on the touchscreen display, and store the reference coordinates inthe memory, and (B) during a continuous user touch operation from atouch-on at the initial touch point on the touchscreen display to atouch-off at another touch point on the touchscreen display (i) setrespective designated coordinates in accordance with touch pointcoordinates of a current touch point on the touchscreen display; (ii)determine both a distance between the reference coordinates and therespective designated coordinates and a direction from the referencecoordinates to the respective designated coordinates; (iii) generate aninput for the video game based on the determining; and (iv) repeat (i)through (iii), wherein the processing circuitry is configured to, if thedistance between the reference coordinates and the respective designatedcoordinates during the continuous user touch operation exceeds apredetermined distance, use the predetermined distance as the distancebetween the reference coordinates and the respective designatedcoordinates.
 6. An information processing apparatus comprising: atouchscreen display; a memory; and processing circuitry in communicationwith the touchscreen display and the memory, the processing circuitrybeing configured to generate images for a video game for display on thetouchscreen display and, while the images for the video game aredisplayed on the touchscreen display, to at least: (A) set referencecoordinates in accordance with touch point coordinates of auser-selected initial touch point on the touchscreen display, and storethe reference coordinates in the memory, and (B) during a continuoususer touch operation from a touch-on at the initial touch point on thetouchscreen display to a touch-off at another touch point on thetouchscreen display (i) set respective designated coordinates inaccordance with touch point coordinates of a current touch point on thetouchscreen display; (ii) determine at least one of a distance betweenthe reference coordinates stored in the memory and the respectivedesignated coordinates and a direction from the reference coordinatesstored in the memory to the respective designated coordinates; (iii)generate an input for the video game based on the determining; and (iv)repeat (i) through (iii) until the continuous user touch operation ends;and (C) repeat (A) and (B), after the continuous user touch operationends, in response to a new initial touch point on the touchscreendisplay for a new continuous user touch operation in which new referencecoordinates are set in accordance with touch point coordinates of a newuser-selected initial touch point on the touchscreen display.
 7. Theinformation processing apparatus according to claim 6, wherein thedetermining determines at least the direction from the referencecoordinates stored in the memory to the respective designatedcoordinates, and the input for the video game is generated based on atleast the determined direction.
 8. The information processing apparatusaccording to claim 6, wherein the determining determines at least thedistance between the reference coordinates stored in the memory and therespective designated coordinates, and the input for the video game isgenerated based on at least the determined distance.
 9. The informationprocessing apparatus according to claim 6, wherein the determiningdetermines both the distance between the reference coordinates stored inthe memory and the respective designated coordinates and the directionfrom the reference coordinates stored in the memory to the respectivedesignated coordinates, and the input for the video game is generatedbased on both the determined distance and the determined direction. 10.A non-transitory computer-readable medium storing a program for use inan information processing apparatus comprising a touchscreen display, amemory and processing circuitry in communication with the touchscreendisplay and the memory, the program, when executed by the processingcircuitry, controlling the information processing apparatus to at least:generate images for a video game for display on the touchscreen display;and while the images for the video game are displayed on the touchscreendisplay (A) set reference coordinates in accordance with touch pointcoordinates of a user-selected initial touch point on the touchscreendisplay, and store the reference coordinates in the memory, and (B)during a continuous user touch operation from a touch-on at the initialtouch point on the touchscreen display to a touch-off at another touchpoint on the touchscreen display (i) set respective designatedcoordinates in accordance with touch point coordinates of a currenttouch point on the touchscreen display; (ii) determine at least one of adistance between the reference coordinates stored in the memory and therespective designated coordinates and a direction from the referencecoordinates stored in the memory to the respective designatedcoordinates; (iii) generate an input for the video game based on thedetermining; and (iv) repeat (i) through (iii), wherein the programcontrols the information processing apparatus to display, on thetouchscreen display, indicia based on the reference coordinates.
 11. Thenon-transitory computer-readable medium according to claim 10, whereinthe determining determines at least the direction from the referencecoordinates stored in the memory to the respective designatedcoordinates, and the input for the video game is generated based on atleast the determined direction.
 12. The non-transitory computer-readablemedium according to claim 10, wherein the determining determines atleast the distance between the reference coordinates stored in thememory and the respective designated coordinates, and the input for thevideo game is generated based on at least the determined distance. 13.The non-transitory computer-readable medium according to claim 10,wherein the determining determines both the distance between thereference coordinates stored in the memory and the respective designatedcoordinates and the direction from the reference coordinates stored inthe memory to the respective designated coordinates, and the input forthe video game is generated based on both the determined distance andthe determined direction.
 14. The non-transitory computer-readablemedium according to claim 10, wherein designated coordinates are setwithin a circle centered on the reference coordinates.
 15. Thenon-transitory computer-readable medium according to claim 10, whereinthe determined distance between the reference coordinates stored in thememory and the respective designated coordinates corresponds to a tiltamount of an emulated joystick and the determined direction from thereference coordinates stored in the memory to the respective designatedcoordinates corresponds to a tilt direction of the emulated joystick.16. The non-transitory computer-readable medium according to claim 10,wherein the input for the video game maintains a same value when thedesignated coordinates remain unchanged during the continuous user touchoperation.
 17. The non-transitory computer-readable medium according toclaim 10, wherein the indicia indicates a position of the referencecoordinates.
 18. The non-transitory computer-readable medium accordingto claim 10, wherein the indicia indicates a range centered on thereference coordinates.
 19. The non-transitory computer-readable mediumaccording to claim 10, wherein the program controls the informationprocessing apparatus to, after the continuous user touch operation endsand in response to a new continuous user touch operation in which newreference coordinates are set in accordance with touch point coordinatesof a new user-selected initial touch point on the touchscreen display,repeat (A) and (B).
 20. The non-transitory computer-readable mediumaccording to claim 19, wherein the program controls the informationprocessing apparatus to detect the touch-off when no touch point isdesignated on the touchscreen display for a predetermined period oftime.
 21. The non-transitory computer-readable medium according to claim20, wherein the program controls the information processing apparatusto, if the distance between the reference coordinates and the respectivedesignated coordinates during the continuous user touch operationexceeds a predetermined distance, use the predetermined distance as thedistance between the reference coordinates and the respective designatedcoordinates.
 22. The non-transitory computer-readable medium accordingto claim 10, wherein the program controls the information processingapparatus to, if the distance between the reference coordinates and therespective designated coordinates during the continuous user touchoperation exceeds a predetermined distance, use the predetermineddistance as the distance between the reference coordinates and therespective designated coordinates.
 23. The non-transitorycomputer-readable medium according to claim 10, wherein the programcontrols the information processing apparatus to control display on thetouchscreen display, during the continuous user touch operation, ofindicia corresponding to an emulated joystick represented by thedetermined distance between the reference coordinates stored in thememory and the respective designated coordinates and the determineddirection from the reference coordinates stored in the memory to therespective designated coordinates.
 24. A non-transitorycomputer-readable medium storing a program for use in an informationprocessing apparatus comprising a touchscreen display; a memory; andprocessing circuitry in communication with the touchscreen display andthe memory, the program, when executed by the processing circuitry,controlling the information processing apparatus to at least: generateimages for a video game for display on the touchscreen display; andwhile the images for the video game are displayed on the touchscreendisplay (A) set reference coordinates in accordance with touch pointcoordinates of a user-selected initial touch point on the touchscreendisplay, and store the reference coordinates in the memory, and (B)during a continuous user touch operation from a touch-on at the initialtouch point on the touchscreen display to a touch-off at another touchpoint on the touchscreen display (i) set respective designatedcoordinates in accordance with touch point coordinates of a currenttouch point on the touchscreen display; (ii) determine both a distancebetween the reference coordinates stored in the memory and therespective designated coordinates and a direction from the referencecoordinates stored in the memory to the respective designatedcoordinates; (iii) generate an input for the video game based on thedetermining; and (iv) repeat (i) through (iii), wherein wherein, if thedistance between the reference coordinates and the respective designatedcoordinates during the continuous user touch operation exceeds apredetermined distance, the predetermined distance is used as thedistance between the reference coordinates and the respective designatedcoordinates.
 25. The non-transitory computer-readable medium accordingto claim 24, wherein designated coordinates are set within a circlecentered on the reference coordinates.
 26. The non-transitorycomputer-readable medium according to claim 24, wherein the determineddistance between the reference coordinates stored in the memory and therespective designated coordinates corresponds to a tilt amount of anemulated joystick and the determined direction from the referencecoordinates stored in the memory to the respective designatedcoordinates corresponds to a tilt direction of the emulated joystick.27. The non-transitory computer-readable medium according to claim 24,wherein the input for the video game maintains a same value when thedesignated coordinates remain unchanged during the continuous user touchoperation.
 28. The non-transitory computer-readable medium according toclaim 24, wherein the program controls the information processingapparatus to control display on the touchscreen display of indiciacorresponding to the reference coordinates.
 29. The non-transitorycomputer-readable medium according to claim 24, wherein the programcontrols the information processing apparatus to control display on thetouchscreen display of a range around the reference coordinates.
 30. Thenon-transitory computer-readable medium according to claim 24, whereinthe program controls the information processing apparatus to controldisplay on the touchscreen display, during the continuous user touchoperation, of indicia corresponding to an emulated joystick representedby the determined distance between the reference coordinates stored inthe memory and the respective designated coordinates and the determineddirection from the reference coordinates stored in the memory to therespective designated coordinates.
 31. The non-transitorycomputer-readable medium according to claim 24, wherein the referencecoordinates are not reset until after the continuous user touchoperation ends.
 32. The non-transitory computer-readable mediumaccording to claim 24, wherein the program controls the informationprocessing apparatus to, after the continuous user touch operation endsand in response to a new continuous user touch operation in which newreference coordinates are set in accordance with touch point coordinatesof a new user-selected initial touch point on the touchscreen display,repeat (A) and (B).
 33. The non-transitory computer-readable mediumaccording to claim 24, wherein the program controls the informationprocessing apparatus to detect the touch-off when no touch point isdesignated on the touchscreen display for a predetermined period oftime.
 34. A non-transitory computer-readable medium storing a programfor use in an information processing apparatus comprising a touchscreendisplay; a memory; and processing circuitry in communication with thetouchscreen display and the memory, the program, when executed by theprocessing circuitry, controlling the information processing apparatusto at least: generate images for a video game for display on thetouchscreen display; and while the images for the video game aredisplayed on the touchscreen display (A) set reference coordinates inaccordance with touch point coordinates of a user-selected initial touchpoint on the touchscreen display, and store the reference coordinates inthe memory, and (B) during a continuous user touch operation from atouch-on at the initial touch point on the touchscreen display to atouch-off at another touch point on the touchscreen display (i) setrespective designated coordinates in accordance with touch pointcoordinates of a current touch point on the touchscreen display; (ii)determine at least one of a distance between the reference coordinatesstored in the memory and the respective designated coordinates and adirection from the reference coordinates stored in the memory to therespective designated coordinates; (iii) generate an input for the videogame based on the determining; and (iv) repeat (i) through (iii) untilthe continuous user touch operation ends; and after the continuous usertouch operation ends, in response to a new continuous user touchoperation in which new reference coordinates are set in accordance withtouch point coordinates of a new user-selected initial touch point onthe touchscreen display, repeat (A) and (B).
 35. The non-transitorycomputer-readable medium according to claim 34, wherein the determiningdetermines at least the direction from the reference coordinates storedin the memory to the respective designated coordinates, and the inputfor the video game is generated based on at least the determineddirection.
 36. The non-transitory computer-readable medium according toclaim 34, wherein the determining determines at least the distancebetween the reference coordinates stored in the memory and therespective designated coordinates, and the input for the video game isgenerated based on at least the determined distance.
 37. Thenon-transitory computer-readable medium according to claim 34, whereinthe determining determines both the distance between the referencecoordinates stored in the memory and the respective designatedcoordinates and the direction from the reference coordinates stored inthe memory to the respective designated coordinates, and the input forthe video game is generated based on both the determined distance andthe determined direction.
 38. The non-transitory computer-readablemedium according to claim 34, wherein designated coordinates are setwithin a circle centered on the reference coordinates.
 39. Thenon-transitory computer-readable medium according to claim 34, whereinthe determined distance between the reference coordinates stored in thememory and the respective designated coordinates corresponds to a tiltamount of an emulated joystick and the determined direction from thereference coordinates stored in the memory to the respective designatedcoordinates corresponds to a tilt direction of the emulated joystick.40. The non-transitory computer-readable medium according to claim 34,wherein the input for the video game maintains a same value when thedesignated coordinates remain unchanged during the continuous user touchoperation.
 41. The non-transitory computer-readable medium according toclaim 34, wherein the program controls the information processingapparatus to control display of indicia indicating a position of thereference coordinates.
 42. The non-transitory computer-readable mediumaccording to claim 34, wherein the program controls the informationprocessing apparatus to control display of indicia indicating a rangecentered on the reference coordinates.
 43. The non-transitorycomputer-readable medium according to claim 34, wherein the programcontrols the information processing apparatus to detect the touch-offwhen no touch point is designated on the touchscreen display for apredetermined period of time.
 44. The non-transitory computer-readablemedium according to claim 43, wherein the program controls theinformation processing apparatus to, if the distance between thereference coordinates and the respective designated coordinates duringthe continuous user touch operation exceeds a predetermined distance,use the predetermined distance as the distance between the referencecoordinates and the respective designated coordinates.
 45. Thenon-transitory computer-readable medium according to claim 34, whereinthe program controls the information processing apparatus to, if thedistance between the reference coordinates and the respective designatedcoordinates during the continuous user touch operation exceeds apredetermined distance, use the predetermined distance as the distancebetween the reference coordinates and the respective designatedcoordinates.
 46. The non-transitory computer-readable medium accordingto claim 34, wherein the program controls the information processingapparatus to control display on the touchscreen display, during thecontinuous user touch operation, of indicia corresponding to an emulatedjoystick represented by the determined distance between the referencecoordinates stored in the memory and the respective designatedcoordinates and the determined direction from the reference coordinatesstored in the memory to the respective designated coordinates.